#pragma once

#include <D3DX10math.h>

namespace e3d
{
	namespace physics
	{
		class Force
		{
		public:
			Force( const D3DXVECTOR3& initialForce );
			virtual ~Force(){};

			virtual const D3DXVECTOR3& force() const = 0;
			virtual void onFrameMove() = 0;

			static void getHandles( ID3D10Effect* effect );

		protected:
			static unsigned int s_numForces;
			unsigned int m_instanceID;

			D3DXVECTOR3 m_force;

			static ID3D10EffectScalarVariable* s_countForces;
			static ID3D10EffectVectorVariable* s_forceDirection;
		};
	}
}

